我們在用程式解決問題時,會遇到可能某一塊程式碼的功能需要重複使用,如果每次要用到就要複製、貼上,其實是一件有點麻煩的事情,且會造成程式碼冗長、不容易知道在寫甚麼。這時候我們就可以使用函式(Function)把程式碼模組化,使其看起來更為精簡易讀。
那我們要如何把程式碼寫成函式呢?
我們先來看一段簡單的程式碼:
#include<stdio.h>
void operation(float, float);
int main(){
float a, b;
printf("Please input a and b >>");
scanf("%f %f", &a, &b);
operation(a, b);
return 0;
}
void operation(float x, float y){
printf("a+b=%.3f\n\n", x+y);
printf("a-b=%.3f\n\n", x-y);
printf("a*b=%.3f\n\n", x*y);
printf("a/b=%.3f\n\n", x/y);
}
以上的程式,是可以輸入兩個數字,輸出兩個數字加、減、乘、除後的四個結果。
程式碼解說:
void operation(float, float);
這行屬於宣告函式,就跟我們要宣告變數一樣,函式也需要事先宣告。其中,void
屬於返回值的型別,而 void
代表在這邊沒有要返回的數值。operation
是我們這個函式的名稱,通常會依函式功能命名,而 float
是傳入參數的型態。void operation(float x, float y){...}
這是函式主體,x
和 y
就是傳入參數,大括號 {}
括住的地方是我們要執行的程式。operation(a, b);
是我們在主程式中正式的調用函式可能有些人會搞不懂 a
、b
、x
、y
這些參數之間的關係是甚麼(我在學的時候常常搞混),其實我都是這麼想的,以這段程式碼來說,我們在 main()
裡面的 a
和 b
,丟到函式中去做運算時,函式會再去重新定義參數名稱(對函式來說 a
和 b
是從外面傳入的資料),而這個參數名稱只會在函式裡面做使用。
明天我們再來看函式的其他範例!